package com.ifelse;

import org.junit.Test;

import java.util.Scanner;

/**
 * @author: wuhao
 * @since: 2021/4/20 12:40
 */
public class IfTest {

    /**
     * 编写程序：由键盘输入三个整数分别存入变量num1、num2、num3，
     * 对它们进行排序(使用 if-else if-else),并且从小到大输出。
     */
    public static void main(String[] args) {

        System.out.println("请输入三个整数:");
        int num1 = new Scanner(System.in).nextInt();
        int num2 = new Scanner(System.in).nextInt();
        int num3 = new Scanner(System.in).nextInt();

        System.out.println("从小到大输出:");
        if (num1 > num2) {
            if (num3 > num1) {
                System.out.println(num2 + " " + num1 + " " + num3);
            } else if (num3 < num2) {
                System.out.println(num3 + " " + num2 + " " + num1);
            } else {
                System.out.println(num2 + " " + num3 + " " + num1);
            }
        } else {//num1 < num2
            if (num3 < num1) {
                System.out.println(num3 + " " + num1 + " " + num2);
            } else if (num3 > num2) {
                System.out.println(num1 + " " + num2 + " " + num3);
            } else {
                System.out.println(num1 + " " + num3 + " " + num2);
            }
        }

        /**
         * 我家的狗5岁了，5岁的狗相当于人类多大呢？其实，狗的前两年每
         * 一年相当于人类的10.5岁，之后每增加一年就增加四岁。那么5岁的狗
         * 相当于人类多少年龄呢？应该是：10.5 + 10.5 + 4 + 4 + 4 = 33岁。
         * <p>
         * 编写一个程序，获取用户输入的狗的年龄，通过程序显示其相当于人
         * 类的年龄。如果用户输入负数，请显示一个提示信息。
         */
        System.out.println("请输入狗的年龄:");
        Scanner scanner = new Scanner(System.in);
        int dogAge = scanner.nextInt();
        if (dogAge <= 0) {
            System.out.println("请输入正确的年龄！");
        } else if (dogAge == 1) {
            System.out.println("相当于人类的年龄:" + 10.5+"岁");
        } else if (dogAge == 2) {
            System.out.println("相当于人类的年龄:" + (10.5*2)+"岁");
        } else{
            System.out.println("相当于人类的年龄:" + ((10.5*2)+((dogAge-2)*4))+"岁");
        }

    }

    //对下列代码，若有输出，指出输出结果
    @Test
    public void test1() {
        int x = 4;
        int y = 1;
        if (x > 2) {
            if (y > 2)
                System.out.println(x + y);
            System.out.println("atguigu"); //atguigu
        } else
            System.out.println("x is " + x);
    }

    @Test
    public void test2() {
        boolean b = true;
        //如果写成if(b=false)能编译通过吗？如果能，结果是？
        if (b == false)
            System.out.println("a"); //b=false ==> a
        else if (b)
            System.out.println("b"); //b
        else if (!b)
            System.out.println("c");
        else
            System.out.println("d");
    }

    /**
     * 编写程序，声明2个int型变量并赋值。判断两数之和，如果大于等
     * 于50，打印“hello world!”
     */
    @Test
    public void test3() {
        int a = 10;
        int b = 40;
        if (a + b >= 50) {
            System.out.println("hello world!");
        }
    }

    /**
     * 编写程序，声明2个double型变量并赋值。判断第一个数大于10.0，
     * 且第2个数小于20.0，打印两数之和。否则，打印两数的乘积。
     */
    @Test
    public void test4() {
        double a = 20.0;
        double b = 20.0;
        if (a > 10.0 && b < 20.0) {
            System.out.println(a + b);
        } else {
            System.out.println(a * b);
        }
    }
}